package 插入排序;

import java.util.Arrays;

public class TestSort {
    //时间复杂度：O(n^2)  最好的情况：O(n)【最好的情况就是数据有序的时候】
    //对于直接插入排序来说，数据越有序越快
    //空间复杂度:O（1）
    //稳定性：稳定【一个稳定的排序，可以实现为不稳定的排序，但是一个本身就不稳定的排序，是不可以变成稳定的排序的】
    public static void insertSort(int[] array){
        for(int i=1;i<array.length;i++){
            int tmp=array[i];
            int j=i-1;
            for(;j>=0;j--){
                if(array[j]>tmp){
                    array[j+1]=array[j];
                }else{
                    //array[j+1]=tmp;
                    break;
                }
            }
            //j回退到了小于0的地方
            array[j+1]=tmp;
        }
    }

    public static void main(String[] args) {
        int[] array={12,5,18,3};
        insertSort(array);
        System.out.println(Arrays.toString(array));
    }
}
